

CC=gcc
C_FLAGS=-c -ffreestanding -I ../include

ASM=nasm
ASM_FLAGS=-f elf


KERNEL_OBJS=entrance.o kernel.o memory.o kmath.o video.o inout.o klib.o gdt.o

kernel.bin: $(KERNEL_OBJS)
	ld -o freeGSD $(KERNEL_OBJS) -Tlink.ld -Map kernel.map

entrance.o:
	$(ASM) $(ASM_FLAGS) -o entrance.o entrance.s

kernel.o:
	$(CC) $(C_FLAGS) -o kernel.o kernel.c

memory.o:
	$(CC) $(C_FLAGS) -o memory.o memory.c

kmath.o:
	$(CC) $(C_FLAGS) -o kmath.o kmath.c

video.o:
	$(CC) $(C_FLAGS) -o video.o video.c

inout.o:
	$(ASM) $(ASM_FLAGS) -o inout.o inout.s

klib.o:
	$(CC) $(C_FLAGS) -o klib.o klib.c

gdt.o:
	$(CC) $(C_FLAGS) -o gdt.o gdt.c

clean:
	rm -f *.o
	rm -f *~
	rm -f freeGSD
